Personal Game Services Commerce System (PGSCS)

ABSTRACT

A Personal Game Services Commerce System is disclosed. The system allows a user to contract with another user to perform service within a virtual environment. The services may include operating in a virtual environment on behalf of another user, operating as a team member, or operating as an opponent in competition. Memory state may be copied and used by the service-providing user. The user requesting the service may confirm that the service has been satisfactorily rendered before making the copied memory state permanent and/or before paying for the service. Users may select service-providing users based on any available criteria. Funds to pay for the service may be frozen while the service is being performed and until the recipient of the service confirms successful performance of the service.

COPYRIGHT NOTICE AND PERMISSION

A portion of the disclosure of this patent document may contain materialthat is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the patent and trademarkoffice patent files or records, but otherwise reserves all copyrightrights whatsoever. The following notice shall apply to this document:Copyright © 2007, Microsoft Corp.

BACKGROUND

With the advent of the Internet and affordable personal computers andcomputing systems, the number of people participating in virtual gamingenvironments and other virtual environments has increased greatly. Manygaming and other computer applications create environments that allowusers to interact with other users throughout the world. These virtualenvironments may be created by software that is running on usercomputers and servers or other virtual environment dedicated resourceslocated anywhere on the planet. These computers, servers, and otherresources may communicate with each other over computer networks, suchas the Internet or private networks, that may span the entire globe.

Users may vary within a virtual environment just as people vary ingeneral. Users may have different levels of skill in particular aspectsof a virtual environment due to factors such as time and money investedin learning the environment and natural ability.

SUMMARY

Systems and methods are provided for a personal game services commercesystem. In one non-limiting example, systems, methods, andcomputer-readable instructions are provided for evaluating theperformance of a service-providing user who has operated in a virtualenvironment on behalf of a requesting user. The system includes avirtual environment system configured to enable the service-providinguser to participate in a game on behalf of the requesting user. Thevirtual environment system is further configured to enable therequesting user to view results of the participation in the virtualenvironment by the service-providing user on behalf of the requestinguser. The system may further include an evaluation system configured toreceive a notification from the requesting user. The notice may comprisean evaluation regarding the results of the participation in the virtualenvironment by the service-providing user on behalf of the requestinguser.

In another non-limiting example, systems, methods, and computer-readableinstructions are provided for facilitating the interaction within avirtual environment by a service-providing user on behalf of arequesting by creating a copied memory state from an original memorystate associated with the requesting user. The copied memory state mayhave contents identical to data contained in the original memory state.The system may permit the service-providing user to participate in avirtual environment on behalf of the requesting user using the copiedmemory state. The system may also detect a first notification from theservice-providing user that the service-providing user's participationin the virtual environment on behalf of the requesting user has ceasedand send a second notification to the requesting user that theservice-providing user's participation in the game on behalf of therequesting user has ceased.

In another non-limiting example, systems, methods, and computer-readableinstructions are provided for detecting the selection of aservice-providing user to advance game progress on behalf of arequesting user by providing data on at least one service-providinguser. The system may detect a selection of a service-providing user bythe requesting user and initiate an exchange service which enables theservice-providing user to participate in a virtual environment with therequesting user or on behalf of the requesting user. Also provided aresystems, methods, and computer-readable instructions for freezing anamount of funds in a requesting user's account and transferring theamount of funds from the requesting user's account to aservice-providing user's account after receiving a notification from therequesting user that the service-providing user has satisfactorilyadvanced progress in a virtual environment on behalf of requesting user.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing Summary, as well as the following Detailed Description, isbetter understood when read in conjunction with the appended drawings.In order to illustrate the present disclosure, various aspects of thedisclosure are shown. However, the disclosure is not limited to thespecific aspects discussed. In the drawings:

FIG. 1 is a flow diagram of an exemplary, non-limiting method oflocating and providing virtual environment service providers.

FIG. 2 is non-limiting, exemplary interface for requesting virtualenvironment service providers.

FIG. 3 is a flow diagram of an exemplary, non-limiting method ofimplementing virtual environment services.

FIG. 4 is a flow diagram of an exemplary, non-limiting method ofoperating an exchange service to facilitate the provision of services ina virtual environment.

FIG. 5 is a block diagram representing an exemplary network environmenthaving a variety of computing devices in which the present disclosure orparts thereof may be implemented.

FIG. 6 is a block diagram representing an exemplary non-limitingcomputing device in which the present disclosure or parts thereof may beimplemented.

DETAILED DESCRIPTION Personal Game Services Commerce System

Online virtual environments created and operated via computer arebecoming more common with the increasing availability and affordabilityof sophisticated computing systems, including personal computers anddedicated gaming computer systems, and network connectivity, such as DSLand cable modem technologies. Often these environments are created aspart of a computer game. Traditionally, the producers of content forthese environments have been game publishing houses and game systemmanufacturers. The traditional consumers of such content have been endusers of the gaming environments. Similar virtual environments that donot involve games or computer gaming have also grown in popularity.These virtual environments provide a way for end users interact witheach other using computing devices and computer networks.

Typically, such environments facilitate interaction in real-time or nearreal-time, and allow end users to operate characters or other forms ofpersonal representations in a virtual world. As the technology hasadvanced, more end users of virtual environments are generating theirown content which may be of value to other users. End users of suchenvironments may also be able to provide services to other users of theenvironment. Such services may include operating in a virtualenvironment on behalf of another user, for example, by assuming theother user's identity or character and playing the game as that user.Alternatively, a user may offer or be asked to join one or more otherusers as part of a virtual team operating within a virtual environment.In yet another alternative, a requesting user may request that anotheruser participate in a match or contest against the requesting user. Suchservices may be of particular interest to novice or less-skilled userswhen such services are offered by more skilled users or users who haveparticular areas of expertise that are of interest to other users. Anyother services that may be of interest to users within a virtualenvironment are contemplated as within the scope of the presentdisclosure.

Many virtual environment users spend countless hours and resourcesbecoming experts at operating within an environment. Other users may beparticularly skilled at certain aspects of operating within a virtualenvironment. Some users may be skilled in general in the environment butdesire assistance with accomplishing a particular task or dealing with aparticular aspect within the environment. Still other users may benovices and wish to accomplish tasks or achieve progress within anenvironment without devoting the hours and resources that might normallybe required to become expert in the environment. The present disclosureprovides ways that expert or skilled users, or any other virtualenvironment user, may capitalize on skills already possessed bycontracting with other users to use those on behalf of the other users.The present disclosure also provides ways for those desiring assistanceor services in an environment to obtain such assistance from otherusers.

FIG. 1 is a flow diagram of an exemplary, non-limiting method 100 oflocating and providing virtual environment service providers. A user ofa virtual environment, referred to herein as a requesting user, may makea request to a virtual environment system for information about userswho provide services to other users. Such users will be referred toherein as service-providing users.

The method begins at block 101. At block 105, the virtual environmentsystem detects the request by a requesting user. The request may be anyform of data transmission or other indication that a requesting user isin search of one or more service-providing users. For example, aninterface may be provided via software and/or hardware within thevirtual environment that allows requesting users to submit requests forservice-providing users. A non-limiting example of such an interface isdescribed herein in regard to FIG. 2. Alternatively, a requesting usermay submit a request using more traditional forms of electroniccommunication, such as email, text message, voice telephony, or anyother form of communication that is capable of transmitting the request.All such methods and means are contemplated as within the scope of thepresent disclosure.

It is contemplated that service-providing users may advertise theirservices within and outside the virtual environment. Requesting usersmay submit requests at block 105 to specific service-providing users,who they may have learned of from advertisements. Alternatively,requesting users may select advertising service-providing users from thelist of service-providing users provided to them in response to arequest, as described below in more detail.

The received request may include preferences provided by the requestinguser. For example, certain skills or ratings may be specified.Alternatively, or in addition, price ranges and/or costs of service maybe specified in the request. Forms of assistance and/or configurationsof users within the environment may be specified. More details about therequesting user's specified preferences are provided herein with regardto FIG. 2. Any such preferences, or any other preferences and specificinformation may be included in the received request. All suchpreferences and information are contemplated as within the scope of thepresent disclosure.

At block 110, the virtual environment system determines which users arecapable of fulfilling the request received at block 105. This may beaccomplished by searching a database of users and detecting which userspossess the skills, qualifications, and/or traits that are specified inthe request. Searching for database entries that match certainattributes is well known, and any method or means known to those skilledin the art may be used to make this determination. Means of collectingdata on users, including collecting ratings which may be provided byother users and skill ratings based on performance in a virtualenvironment, are also well known, and all such ratings, ranking, andother user data are contemplated as within the scope of the presentdisclosure.

At block 115, the virtual environment system provides a listing ofservice-providing users as determined at block 110. This list may bepresented by any means known to those skilled in the art, includingpresenting the list in a window or other means within the virtualenvironment system. Alternatively, service-providing user data may bepresented to a requesting user through more traditional means, such asemail, text messages, voice messages, voice telephony, or any othermeans known to those skilled in the art. The listing may includeinformation about each service-providing user such as skill level,community rating, customer satisfaction rating, length of time the userhas been operating in the environment, length of time the user has beena service-providing user, charges for the user's services, estimatedtime to complete one or more tasks, specific skills or qualifications,or any other information that may be helpful to a requesting user inassessing service-providing users and/or deciding whichservice-providing users to retain for services.

The means with which the service-providing users are provided to arequesting user may also enable the requesting user to select one ormore service-providing users. Such means of selecting options from alist of available options are well known to those skilled in the art. Atblock 120, the virtual environment system detects the requesting user'sselection of one or more service-providing users. Means of detectinguser input are well known to those skilled in the art, and any suchmeans are contemplated as within the scope of the present disclosure.

In one embodiment, service-providing users may also have the option ofagreeing to perform the requested task or assistance. At block 125, thevirtual environment system may notify the selected service-providinguser(s) that the requesting user has selected them for a service. Thenotification may include preferences indicated by the requesting user,and/or other data that will allow the service-providing user todetermine the service(s) being requested and decide if theservice-providing user should perform the requested services. Suchnotifications may take the form of any effective means, includingwindows or messages delivered within the virtual environment or moretraditional forms of notifications including email, text messages, voicemessages, voice telephony, or any other means known to those skilled inthe art. In other embodiments, service-providing users may be committedto perform requested services as a condition of being listed among userswho provide services. In such embodiments, service-providing users maybe removed from the group of available service-providing users once theyare selected to provide a service by a requesting user. Suchservice-providing users maybe placed back into the group of availableservice-providing users once the requested task is complete. Otherpermutations, arrangements, and requirements of service-providing usersmay be employed by a virtual environment system, and all such variationsare contemplated as within the scope of the present disclosure.

At block 130, the virtual environment system receives a response fromthe selected service-providing user(s). The response may be received viaany means known to those skilled in the art, including detecting a clickon an affirmative button (such as a button labeled “Accept”), a reply toan email or text message, or any other effective means.

At block 135, the virtual environment system determines whether theresponse received from the selected service-providing user(s) isaffirmative. Means of making such a determination are well known tothose skilled in the art and will not be recited herein. If the responseis affirmative, indicating that the selected service-providing user(s)has agreed to perform the requested service, the virtual environmentsystem notifies the requesting user at block 140. Such a notificationcan be accomplished using any means set forth herein or any other meansknown to those skilled in the art. Once confirmation is provided to therequesting user, the service-providing user(s) may begin to perform therequested service, as set forth herein. The method is terminated atblock 150.

If the service-providing user(s) declines to perform the requestedservice, then the requesting user is notified of the denial at block145. Once this notification is provided, the virtual environment systemmay then determine a group of users capable of providing the requestedservice at block 110, and repeat the process until one or moreservice-providing users agrees to perform the requested service, oruntil the pool of available service-providing users is exhausted. Whenperforming the determination at block 110 after one or moreservice-providing users has declined to perform the requested service,the virtual environment system may eliminate the decliningservice-providing users from the pool of available service-providingusers, thus eliminating from the list of available service-providingusers provided to the requesting user those service-providing users thatwill not agree to perform the service.

Referring now to FIG. 2, a non-limiting, exemplary interface that allowsa requesting user to request information on service-providing usersaccording to the requesting user's preferences is illustrated. Aninterface for such a request may take the form of window 200. Window 200maybe displayed within a virtual environment, or through a relatedsystem or application. Other means of presenting options allowing arequesting user to select preferences are known to those skilled in theart, and all such means are contemplated as within the scope of thepresent disclosure.

Window 200 may have several components, such as skill area 210. Skillarea 210 may contain checkboxes, drop-down menus, radio buttons, or anyother means of listing and/or allowing the selection of skillspreferences. Skill subarea 211 may allow a requesting user to selectpreferences for general or specific skills desired in aservice-providing user. For example, a requesting user who wants tolocate a service-providing user who can operate a virtual character onbehalf of the requesting user in order to advance the requesting user'scharacter within the virtual environment may want to search forservice-providing users that are rated at “Pro”, “Expert”, or“Proficient” skill levels. These skill ratings may reflect their generalability to operate within the virtual environment. Skill ratings may bedetermined by the virtual environment system, or operators of suchsystems, based on the service-providing users achievement within thevirtual environment. Alternatively, users of the virtual environment mayprovide input that is used to determine service-providing users skillratings, for example, by voting on or rating service-providing users.Other means and methods of assigning or determining a general skillrating of a user in a virtual environment are known to those skilled inthe art and all such means and methods are contemplated as within thescope of the present disclosure.

Alternatively, or in addition, a requesting user may want to search forservice-providing users that are proficient at a specific skill withinthe virtual environment. For example, requesting users may want tolocate a service-providing user that is proficient in martial arts,weaponry, speed, and/or strength. A requesting user may believe that oneor more of these specific skills may be valuable in accomplishing one ormore tasks within the environment. Like general skill ratings, specificskill ratings may be determined by the virtual environment system, oroperators of such systems, based on the service-providing usersachievement within the virtual environment. Alternatively, users of thevirtual environment may provide input that is used to determineservice-providing users skill ratings. Other means and methods ofassigning or determining a specific skill rating of a user in a virtualenvironment are known to those skilled in the art and all such means andmethods are contemplated as within the scope of the present disclosure.

Another skill preference that may be offered as a preference option islevel skill. Skill subarea 212 may provide the option for a requestinguser to select a preference for a service-providing user who isproficient in one or more specific levels of a virtual environment. Manyvirtual environments, such as online gaming environments, are organizedaccording to levels, with difficulty of operating within the environmentincreasing as the level number increases. Thus, a requesting user whohas completed level 8 within a virtual environment, but is havingdifficulty completing level 9, may request a service-providing user whois proficient at completing level 9. Preference options for all levelsmay be provided, or for only certain levels. Here again, level skillratings may be determined by the virtual environment system, oroperators of such systems, based on the service-providing usersachievement within the virtual environment. Alternatively, users of thevirtual environment may provide input that is used to determineservice-providing users level skill ratings. Other means and methods ofassigning or determining a level skill rating of a user in a virtualenvironment are known to those skilled in the art and all such means andmethods are contemplated as within the scope of the present disclosure.

Yet another skill preference that may be offered as a preference optionis specific objective skill. Skill subarea 213 may provide the optionfor a requesting user to select a preference for a service-providinguser who is proficient at achieving a specific objective within thevirtual environment. Many virtual environments, such as gamingenvironments, require users to achieve specific objectives to attainrewards or achieve progress within the virtual environment. A requestinguser may be having difficulty with a particular objective, and mayprefer a service-providing user who is proficient at achieving thatobjective. For example, in a military-oriented virtual environment, arequesting user may prefer a service-providing user who is proficient atachieving objectives related to a fuel depot, an airport, enemyheadquarters, or an enemy armory. Any objective that maybe present in avirtual environment may be provided as a preference option. Here also,specific objective skill ratings may be determined by the virtualenvironment system, or operators of such systems, based on theservice-providing users achievement within the virtual environment.Alternatively, users of the virtual environment may provide input thatis used to determine service-providing users specific objective skillratings. Other means and methods of assigning or determining a specificobjective skill rating of a user in a virtual environment are known tothose skilled in the art. Moreover, any skill rating, ranking, level, orany other measure of specific or general skills of a user may be used asa preference option when gathering, collecting, or otherwise detecting arequesting user's preferences in regard to a service-providing user(s),and all such measures are contemplated as within the scope of thepresent disclosure.

Subarea 214 provides a means for a requesting user to specify the rangeof prices he or she is willing to pay for the service provided by aservice-providing user. In some embodiments, services may be providedfor a fee. Such a fee may be calculated in actual money, or it may becalculated in the currency used within a virtual environment.Environment-specific money may or may not be based on actual money.Other forms of exchange or mechanisms of incentivizing users to provideservices maybe used, and all such mechanisms are contemplated as withinthe scope of the present disclosure.

Service-providing users may be compensated per unit of time, which maybe measured in real time or a separate time unit or measure employed bythe virtual environment system. Service-providing users may instead becompensated per task, or by measuring a combination of time spent andtasks accomplished. Alternatively, service-providing users andrequesting user may bargain directly or indirectly with each other andagree upon terms for a service or services. As shown in subarea 214, arequesting user may select the option to deal with service-providingusers who charge a certain amount for units of time used. Alternatively,a requesting user may select the option to base pricing for the serviceon the task to be performed. In yet another alternative, a requestinguser may select a preference to negotiate a deal with aservice-providing users. Any such methods and means of negotiatingand/or determining an exchange or other terms for providing a serviceare contemplated as within the scope of the present disclosure.

Another characteristic that may be of interest to a requesting user isthe reputation of service-providing users. In many virtual environmentsand other virtual communities, mechanisms are in place that allow usersto rate other users for a variety of characteristics, such as quality ofservice, trustworthiness, timeliness, etc. Community rating area 230allows a requesting user to choose a preference for a particularcommunity rating when requesting information about service-providingusers. A requesting user may prefer to only deal with the highest ratedservice-providing users. However, such service-providing users maycharge more for their services, and so a requesting user may be willingto deal with lower rated service-providing users in the interest ofeconomy. It may also take a greater amount of time to acquire a higherrating, and therefore a lower rated service-providing user may have therequested skills, but lack the time invested to achieve the higherrating. Any forms of community ratings and all various meanings anddefinitions of such ratings are contemplated as within the scope of thepresent disclosure.

A requesting user may also be asked to set a preference regarding thetype of service that a service-providing user is being asked to provide.For example, in area 221, a requesting user may select option 221indicating that the service-providing user is to operate a character inan environment on behalf of the requesting user. In this case, theservice-providing user may take on the characteristics and memory spaceassociated with a character operated by a requesting user, and operatethe requesting user's character in the environment for the agreed-uponamount of time or until an agreed-upon task is accomplished. Thisprocess will be described herein in more detail.

Alternatively, the service-providing user may be asked to join a groupof existing characters to operate in the environment as a team, as shownat option 222 in area 220. The service-providing user may operate as hisor her own character, as a team-designated character, or as a characterdesigned solely for such a configuration. The service-providing user mayhelp the team accomplish certain tasks or achieve success on levelswithin the environment, or may fill in on a team with a missing player.Other teams and/or users in the virtual environment may or may not bealerted to or capable of knowing that a team member of the requestinguser's team is a service-providing user. Any other variations of therole of one or more service-providing users are contemplated as withinthe scope of the present disclosure.

Time limits and/or start and stop times may be set or requested by therequesting user, or may be negotiated between the requesting user andthe service-providing user. This may be the time allotted for theservice-providing user to perform the task(s) involved in thetransaction, or the amount of time the service-providing user isallotted to assume the character belonging to the requesting user orplay on a team with the requesting user. In one embodiment, where aservice-providing user is functioning as a member of a team, the timelimit may be the start and stop times of the service-providing user'sparticipation in the team. Alternatively, in the embodiment where arequesting user has hired a service-providing user to compete againstthe requesting user in competition, the time limit may be the start andoptionally the end time of their competition. Other uses of time limitsand start and stop times are contemplated. Requested time limits may beconveyed through the use of a drop-down menu such as, for example, timelimit area 240. Other means of conveying time limits may be used and areknown to those skilled in the art. All such means are contemplated aswithin the scope of the present disclosure.

Other information may be provided to service-providing user throughother means. For example, window 200 may include text box 235 whichallows a requesting user to include a message, notes, or other textcommunications that maybe included in a request. This additionalinformation may make it more clear to service-providing users what tasksare being requested, and thus allow them to make an informed decisionregarding whether or not to accept the request. Any information that maybe useful or that a requesting user may want to include may be providedin text box 235. Any other means of getting any type or form ofinformation or any other communication is contemplated as within thescope of the present disclosure.

Once a requesting user has completed selecting his or her preferences, arequesting user may submit the request by providing an indication to thevirtual environment system, such as by clicking on submit button 250. Ifa requesting user decides not to proceed with the request, therequesting user may indicate this to virtual environment system, such asby clicking on cancel button 260. Many means and methods of providingmeans of input and detecting such input to a user of a virtualenvironment are known to those skilled in that art, and all such meansand methods are contemplated as within the scope of the presentdisclosure.

Identification of the requesting user may be provided throughcommunications that do not require active involvement of the requestinguser. For example, before submitting a request, the requesting user mayhave had to log into a virtual environment. The virtual environmentsystem may then determine the requesting user's identity and associatedone or more characters from the requesting user's log-in credentials.Alternatively, the requesting user may access the request mechanismwhile in the environment functioning as a character associated with therequesting user. The virtual environment system may then determineidentification for the requesting user and the character from thecharacter state as the request is submitted. In yet another alternative,the request mechanism, such as window 200, may include an input wherethe requesting user can submit information that identifies therequesting user, team, and/or virtual character with which the requestedservice is associated. The virtual environment system may or may notprovide identification information about the requesting user, team,and/or virtual character to service-providing users. Any means ormethods of identifying the requesting user and criteria used todetermine whether to provide such information to service-providing usersare contemplated as within the scope of the present disclosure.

In FIG. 3, a non-limiting, exemplary method 300 of implementing virtualenvironment services is illustrated. The method starts at block 301. Atblock 305, a virtual environment services transaction is initiated. Inone embodiment, such a transaction is initiated using a method such asmethod 100, illustrated in FIG. 1. In other embodiments, transactionsare initiated using other means or methods.

At block 310, a copy is made of the requesting user's relevant memorystate. In a virtual environment, information about a character,construct, or other virtual entity that is operated by a user may bestored in a memory state. As used herein, such a memory state may bestored in random access memory (“RAM”), disk drives, flash drives,floppy disks, magnetic or digital tape, compact discs, or any other formof storage capable of containing data. Such storage may be located inany device accessible by the virtual environment system, includingservers and centrally located computers as well as user computers. Thismemory state may be altered as a user interacts with the virtualenvironment. For example, if a user playing a military-related onlinecomputer game uses his or her virtual character to obtain a weapon, thepossession of that weapon may be recorded in the memory state associatedwith that character. This memory state may also be altered by thevirtual environment system for reasons other than interaction within thevirtual environment. For example, the first time a user creates a newcharacter in an environment, a new memory state may be created andassociated with that character. As another example, a user may have thememory state associated with a character locked due to behavior withinthe virtual environment. As yet another example, a user may purchaseoutside of the environment attributes or virtual objects that affect theuser's character, and which result in the character's memory state beingaltered to reflect the purchase. Many other uses and means of modifyinga memory state are known to those skilled in the art, and all such usesand means are contemplated as within the scope of the presentdisclosure.

Once a memory state exists, then a copy may be made which may be used bya service-providing user to provide a service. Such a copy may be storedin the same or a different location and/or storage device as theoriginal memory state. The original memory state may be locked so thatthe character or other virtual entity associated with it cannot operateas two identical characters at the same time in the virtual environment.The copied memory state may be an exact copy of the entire originalmemory state associated with a virtual character, or it may be a subsetof the original memory state. The copied memory state may also containdata that is not present in the original memory state, such as trackingprograms, administrative data, and other data which may be useful. Suchdata may be included in the copied memory state when it is created. Inanother embodiment, instead of generating a separate, copied memorystate, the virtual environment system may use the original memory stateand store data that can be used to later roll back the original memorystate, placing it in a condition identical or similar to the conditionit was in before a virtual environment services transaction wasinitiated. All such forms, and any other form, of original and copiedmemory states are contemplated as within the scope of the presentdisclosure.

The amount and type of memory state copied into a copied memory statemay vary depending on the type of service requested. In one embodiment,where a requesting user is requesting that a service-providing useroperate in a virtual environment on the requesting user's behalf,essentially playing a character or virtual entity for the requestinguser, the majority or the entirety of an original memory state may becopied into the copied memory state. In another embodiment, where arequesting user is requesting a service-providing user operate in avirtual environment as part of a team, which may include the requestinguser's character or virtual entity, the memory state copied may be onlyportions of memory state relevant to team membership, the current stateof the particular area of the virtual environment in which the team isoperating, and/or other information needed to function as part of ateam. In yet another embodiment, where a requesting user is requesting aservice-providing user play against the requesting user in a match,contest, or other form of competition, the memory state copied may beonly that relevant to the competition and/or other competition relatedinformation, or may be no memory state at all. Any variation and type ofmemory state that may be useful if copied from an original memory state,or useful due to not copying, and all permutations thereof, arecontemplated as within the scope of the present disclosure.

At block 315, the service-providing user is permitted to operate in thevirtual environment as using the copied memory state. Theservice-providing user may operate as a character or virtual entityassociated with the requesting, as a member of a team, as a competitor,or in any other capacity that may be requested. This may be accomplishedthrough any means known to those skilled in the art. For example, theservice-providing user may be provided with log-in credentials by thethat allow the service-providing user to enter the virtual environmentand access the copied memory state to operate in the environment as acharacter or virtual entity associated with the requesting user, a teammember, or in another capacity. Alternatively, the service-providinguser may be sent a link via known means of electronic communication thatallows the service-providing user to click into a virtual location inthe environment and operate using the copied memory state. Other meansand methods of allowing a user to operate using a specific memory stateare known to those skilled in the art, and all such means and methodsare contemplated as within the scope of the present disclosure.

At block 315, the service-providing user operates using the copiedmemory state and attempts to accomplish the requested service. Theactions, operation, and/or results of the performance of theservice-providing user in the environment while operating using thecopied memory state may be recorded and/or stored in the copied memorystate. The amount of time the service-providing user operates using thememory state may be limited or unlimited, and may be bounded by theaccomplishment of one or more certain tasks or objectives. Anyarrangement that may be agreed upon by a requesting user and aservice-providing user is contemplated. The requesting user may observethe service-providing user as the service-providing user operates usingthe copied memory state. This may allow the requesting user to evaluatethe performance of the service-providing user as it progresses. Meansand methods of allowing a user to observe the operation of another userin a virtual environment are well known to those skilled in the art. Allsuch means and methods are contemplated as within the scope of thepresent disclosure.

At block 320, a virtual environment system may detect the cessation ofservice-providing user's operation using the copied memory state. Thismay be detected due to the service-providing user logging out of theenvironment or the service-providing user notifying the virtualenvironment system of the end of the service-providing user's operationusing the copied memory state using means known to those skilled in theart. Alternatively, a virtual environment system may detect that theservice-providing user has accomplished the goals or objectives thathave been agreed upon in the service transaction, and automaticallyterminate the service-providing user's access to the copied memorystate. In yet another alternative, a virtual environment system mayreceive a notification from a requesting user that the requesting userno longer wishes to have the service-providing user operating in theenvironment using the copied memory state. This may be due to requestinguser dissatisfaction with the service-providing user and/or theservice-providing user's performance. Any other method or means ofdetecting or initiating a cessation of the use of copied memory state iscontemplated as within the scope of the present disclosure.

At block 325, the requesting user is notified that the service-providinguser has ceased using the copied memory state. This notification may beprovided using any method known to those skilled in the art. Thenotification may include a request to the requesting user to providefeedback on the service-providing user's performance. This may be simplyan option of accepting or rejecting the service-providing user'sperformance, or indicating that the performance was satisfactory orunsatisfactory. Alternatively, the notification may allow the requestinguser to evaluate the service-providing user's performance in a morethorough manner, including options for levels of satisfaction and meansfor entering comments and criticism. In yet another alternative, thenotification may ask the requesting user whether the requesting userwould like to integrate the copied memory state, and therefore theprogress, accomplishment, and/or completion of objectives by theservice-providing user, into the original memory state. In this way, theoperation within the virtual environment by the service-providing usermay be associated with the character or virtual entity associated withthe requesting user. All such methods of obtaining feedback, and anyother method of obtaining feedback, are contemplated as within the scopeof the present disclosure.

At block 330, a response to the notification may be received, in oneembodiment, at the virtual environment system. This may be accomplishedthrough any of the effective communication means known to those skilledin the art. The requesting user may have a limited time in which torespond to the notification. In one embodiment, if the requesting userdoes not respond to the notification within a predetermined amount oftime, the copied memory state is automatically deleted or otherwise notintegrated into the original memory state, thus preventing therequesting user from gaining the benefit of the service-providing user'sservices.

At block 335, the response is evaluated to determine whether it ispositive or negative. For example, a negative response may be a responsefrom the requesting user indicating that the performance of theservice-providing user was not satisfactory, and a positive response mayindicate that the requesting user found the performance satisfactory.Alternatively, the response may indicate, directly or indirectly, thatthe requesting user would like to integrate the copied memory state intothe original memory state and therefore accept the operation of theservice-providing user in the environment on behalf of the requestinguser. Methods and means of determining the content of a response arewell known to those skilled in the art and will not be recited herein.All such methods and means are contemplated as within the scope of thepresent disclosure.

If the response from the requesting user is determined to be negative,then at block 340, the contents of the copied memory state maybediscarded. Alternatively, the contents maybe stored or copied elsewherefor future reference. In one embodiment, the contents of the copiedmemory state are not integrated into the original memory state if therequesting user is not satisfied with the performance of theservice-providing user, or otherwise provides an indication that suchcontents are not to be integrated into the original memory state. Inanother embodiment, the virtual environment system detects that apredetermined amount of time has elapsed, and that the service-providinguser has not achieved a specific objective, and automatically discardsthe copied memory state.

If the response from the requesting user is determined to be positive,then at block 345 the contents of the copied memory state may beintegrated or copied into the original memory state. The entire contentsof the copied memory state may replace the contents of the originalmemory state in the embodiment where a service-providing user isoperating as a character or virtual entity of a requesting user.Alternatively, a subset of the contents of the copied memory state maybe integrated into the original memory state. In yet anotheralternative, contents from the copied memory state may not be integratedinto the original memory state at all, but instead some changes may bemade to the original memory state to reflect the performance of theservice-providing user.

Regardless of whether the response is positive or negative, the responsemay contain feedback from the requesting user regarding theservice-providing user's performance, behavior, skills, or any othercharacteristic or opinion. Such data may be collected by the virtualenvironment system and used to create ratings, rankings, scores, orother data that may in turn be used to provide information to otherusers who are interested in selecting a service-providing user. Theresponse may also include feedback relating to other aspects of thevirtual environment and/or the services exchange and related processes.This information may be gathered and used by the virtual environmentsystem for any purpose. All such feedback is contemplated as within thescope of the present disclosure.

Additional information or data may be written to or removed from theoriginal memory state as a result of the performance of theservice-providing user. For example, the changes resulting from theperformance or operation of the service-providing user may be recordedwhile the original memory state is maintained, allowing the requestinguser or the virtual environment system to roll back the changes made.This may occur if the requesting user requests it due tolater-discovered dissatisfaction with the service provided, or for anyother reason. Any permutation of modifying the original memory statebased on the operation of a service-providing user is contemplated aswithin the scope of the present disclosure.

Global or system-wide data may or may not also be altered at block 345.For example, rankings and scores that are obtained by aservice-providing user for a character or virtual entity associated witha requesting user may not be recorded in global or system-widestatistics if the virtual environment system does not allow such data tobe used in character or entity rankings, ratings, or scores.Alternatively, everything that a service-providing user does on behalfof a requesting user may be credited to the requesting user. Anyvariation between these two ways of applying data resulting from aservice performed by a service-providing user are contemplated as withinthe scope of the present disclosure.

Whether or not the requesting user accepts the performance or operationof the service-providing user, a notification may be sent to bothparties at block 350. The notification sent to the requesting user andthe service-providing user may be identical, or separate and differentnotifications may be transmitted. This notification may indicate whetherthe service-providing user's performance was satisfactory and/oraccepted, whether any of the copied memory state was integrated into theoriginal memory state, whether any other modifications of the copiedmemory state, original memory state, and/or the virtual environmentsystem resulted from the transaction between the requesting user and theservice-providing user, and/or any comments or feedback from one of theusers for the other. Also included may be charges or other financialresults of the transaction. Such aspects are described in more detailherein. Any information or data that may be found useful or informativeto a requesting user and/or a service-providing user may be included inthe notification provided at block 350. All such information and data,as well as any effective means of communicating a notification as knownto those skilled in the art, are contemplated as within the scope of thepresent disclosure. The method is terminated at block 355.

To compensate or otherwise exchange value for the services provided by aservice-providing user, an exchange service may be employed. Exchangeservice are common on the Internet and in virtual environments, andtypes and methods of exchanging goods, services, money, and other itemsare well known to those skilled in the art. The exchange servicedescribed herein may be part of the virtual environment system, or maybe a separate entity communicatively connected to the virtualenvironment system. A non-limiting, exemplary method 400 of employing anexchange service to facilitate the provision of services in a virtualenvironment is illustrated in FIG. 4.

The method is started at block 401. At block 405, a transaction isentered into for services to be provided by a service-providing user toa requesting user in a virtual environment. The service to be providedmay be any service as described herein, or any other service that may beperformed within or related to a virtual environment. Terms of theagreement may have been established, such as a price or fee schedule,the service to be performed, a time limit or lack thereof, etc.

At block 410, funds may be frozen in a requesting user's account. Theamount of funds frozen may be an amount of funds to be paid to theservice-providing user by the requesting user for performing theservice. Alternatively, a predetermined amount of funds may be frozenthat is not necessarily equal to the price of the service. For example,if the terms of the transaction dictate that a service-providing userwill perform a service of a set amount of funds per hour, for up to aset number of hours, an amount of funds equal to half or all of theeligible funds may be frozen. Alternatively, a set amount of funds asdetermined by policies of the virtual environment system or the exchangeservice may be frozen regardless of the price of the service. In anotheralternative, no funds may be frozen at all. In yet another alternative,the amount of funds frozen may depend on characteristics of therequesting user, such as credit rating, amount of time operating in theenvironment, community or credibility rating, or any othercharacteristic. In still another alternative, a predetermined amount offunds may be frozen or may be transferred as a cost of participating inthe virtual environment's service exchange marketplace. Such an amountof fund may not be refundable, and may go to the virtual environmentsystem or a related account. This amount of funds may or may not beincluded in the fee or price set for the service-providing user toprovide the service. Any other methods or means of determining whatamount of funds, if any, should be frozen when a transaction for aservice commences are contemplated as within the scope of the presentdisclosure.

As used herein, funds may refer to actual money which is transferredinto and out of financial accounts in commonly accepted currencies(dollars, Euros, etc.) Alternatively, funds may refer to a currency usedwithin the virtual environment, that may or may not be exchangeable foractual currency used in the real world. In other embodiments, users mayexchanges goods or services instead of funds of any type, and mayparticipate in a barter system to determine the exchange to be made. Anyform of exchange or payment is contemplated.

At block 415, the service is rendered. This may be any service providedby any service-providing user or multiple service-providing users asdescribed herein. As described herein, the rendering of the serviceand/or the performance of the service-providing user may be observed bythe requesting user or other users. Means and methods of enabling a userto view other users in a virtual environments are known to those skilledin the art, and all such means and methods are contemplated as withinthe scope of the present disclosure.

At block 420, the completion of the service or cessation of activity bythe service-providing user for the requesting user is detected. This mayhappen automatically, such as when agreed-upon objectives are met, orwhen a time limit set for providing the service has expired. Detectionof completion of cessation of the service may be by any of the waysdescribed herein for detecting the cessation of activity, such as thosedescribed in regard to FIG. 3, or by any other means known to thoseskilled in the art for detecting an activity or cessation of anactivity.

At block 425, the requesting user is notified that the service iscomplete, or activity by the service-providing user for the requestinguser has ended. Any notification as described herein, or any other formof communication is contemplated as within the scope of the presentdisclosure. As described in regard to FIG. 3, activity of theservice-providing user may be stopped due to the requesting userindicating that it should be stopped, for example, if the requestinguser is dissatisfied with the performance of the service-providing user.Also as described in FIG. 3, the notification may request that therequesting user respond in some way which will indicate whether theexchange service should transfer the frozen and/or other funds from anaccount of the requesting user to an account of the service-providinguser. Such a notification may allow a requesting user to providefeedback, satisfaction ratings, comments, or any other form ofinformation that may be of use or interest to users and administratorsof a virtual environment system that facilitates the exchange ofservice, goods, and other items real or virtual.

At block 430, a response to the notification may be received, in oneembodiment, at the virtual environment system. This may be accomplishedthrough any of the effective communication means known to those skilledin the art.

At block 435, the response is evaluated to determine whether it ispositive or negative. A negative response may be a response from therequesting user indicating that the performance of the service-providinguser was not satisfactory, and that funds should not be transferred tothe service-providing user. A positive response may indicate that therequesting user found the performance satisfactory and that funds shouldbe transferred to the service-providing user. In one embodiment, theresponse received at block 435 may also indicate whether the requestinguser would like to integrate the copied memory state into the originalmemory state and therefore accept the operation of the service-providinguser in the environment on behalf of the requesting user, as describedwith regard to FIG. 3. Methods and means of determining the content of aresponse are well known to those skilled in the art and will not berecited herein. All such methods and means are contemplated as withinthe scope of the present disclosure.

If the response from the requesting user is determined to be negative,then at block 440, the frozen funds may be unfrozen, and no funds may betransferred to the service-providing user's account. Alternatively, onlya preset amount of funds may be transferred, and not the entire amountagreed upon for a satisfactory performance by the service-providinguser. In one embodiment, negative response also indicates that thecontents of the copied memory state are not to be integrated into theoriginal memory state, as described in regard to FIG. 3. In anotherembodiment, because the requesting player responds negatively, andtherefore does not permit funds to be transferred for the service, thevirtual environment system and/or the exchange system do not permit thecopied memory state to be integrated into the original memory state.This may prevent a requesting user from getting the benefit of aservice-providing user's services without paying for them.

If the response from the requesting user is determined to be positive,then at block 445 the frozen funds and/or other funds may be transferredfrom an account of the requesting user to an account of theservice-providing user. The amount of funds may be dictated by thetransaction or agreement entered into by the two parties. In oneembodiment, the contents of the copied memory state may be integrated orcopied into the original memory state, as described in regard to FIG. 3.Any permutations of transferring funds and/or modifying memory statesbased on the operation of a service-providing user is contemplated aswithin the scope of the present disclosure.

Here again, and regardless of whether the response is positive ornegative, the response may contain feedback from the requesting userregarding the service-providing user's performance, behavior, skills,trustworthiness or any other characteristic or opinion. Such data may becollected by the virtual environment system and used to create ratings,rankings, scores, or other data that may in turn be used to provideinformation to other users who are interested in selecting aservice-providing user. The response may also include feedback relatingto other aspects of the virtual environment and/or the services exchangeand related processes. This information may be gathered and used by thevirtual environment system for any purpose. All such feedback iscontemplated as within the scope of the present disclosure.

Whether or not the requesting user accepts the performance or operationof the service-providing user, a notification may be sent to bothparties at block 450. The notification sent to the requesting user andthe service-providing user may be identical, or separate and differentnotifications may be transmitted. This notification may indicate whetherthe service-providing user's performance was satisfactory and/oraccepted, whether any funds were transferred, whether any modificationsof memory state occurred, and/or any comments or feedback from one ofthe users for the other. Any information or data that may be founduseful or informative to a requesting user and/or a service-providinguser may be included in the notification provided at block 450. All suchinformation and data, as well as any effective means of communicating anotification as known to those skilled in the art, are contemplated aswithin the scope of the present disclosure. The method is terminated atblock 455.

Exemplary Networked and Distributed Environments

One of ordinary skill in the art can appreciate that a computer orgaming console, such as a computer or gaming console used by arequesting user or a service-providing user to access and operate withina virtual environment, or other client or server device can be deployedas part of a computer network, or in a distributed computingenvironment. In this regard, the present disclosure pertains to anycomputer system or virtual environment system as described above, havingany number of memory or storage units, and any number of applicationsand processes occurring across any number of storage units or volumes,which may be used in connection with an electronic messaging system. Thepresent disclosure may apply to an environment with server computers andclient computers deployed in a network environment or distributedcomputing environment, having remote or local storage. The presentdisclosure may also be applied to standalone computing devices, havingprogramming language functionality, interpretation and executioncapabilities for generating, receiving and transmitting information inconnection with remote or local electronic messaging services.

Distributed computing facilitates may share computer resources andservices by direct exchange between computing devices and systems, suchas the exchange described above between a requesting user and aservice-providing user in the process of completing a servicestransaction. These resources and services include the exchange ofinformation, cache storage, and disk storage for files. Distributedcomputing takes advantage of network connectivity, allowing clients toleverage their collective power to create and participate insophisticated virtual environments. In this regard, a variety of devicesmay have applications, objects or resources that may implicate a virtualenvironment system that may utilize the techniques of the presentsubject matter.

FIG. 5 provides a schematic diagram of an exemplary networked ordistributed virtual environment system. The distributed virtualenvironment comprises server computing objects 50 a, 50 b, etc. andcomputing objects or devices 520 a, 520 b, 520 c, etc. These objects maybe personal computers, gaming consoles, portable devices, mobilecommunications devices, or any other computing device. These objects maycomprise programs, methods, data stores, programmable logic, etc. Theobjects may comprise portions of the same or different devices such aspersonal digital assistants (PDAs), televisions, Moving Picture ExpertsGroup (MPEG-1) Audio Layer-3 (MP3) players, televisions, personalcomputers, etc. Each object can communicate with another object by wayof the communications network 54. This network may itself comprise othercomputing objects and computing devices that provide services to thesystem of FIG. 5. This network may include wired and/or wirelesscomponents. In accordance with an aspect of the present disclosure, eachobject 50 a, 50 b, etc. or 520 a, 520 b, 520 c, etc. may contain anapplication that might function as a component or element of a virtualenvironment system.

In a distributed computing architecture, computers, which may havetraditionally been used solely as clients, communicate directly amongthemselves and can act as both clients and servers, assuming whateverrole is most efficient for the network or the virtual environmentsystem. This reduces the load on servers and allows all of the clientsto access resources available on other clients, thereby increasing thecapability and efficiency of the entire network. A virtual environmentsystem in accordance with the present disclosure may thus be distributedamong servers and clients, acting in a way that is efficient for theentire system.

Distributed computing can help users of virtual environment systemsinteract and participate in a virtual environment across diversegeographic boundaries. Moreover, distributed computing can move datacloser to the point where data is consumed acting as a network cachingmechanism. Distributed computing also allows computing networks todynamically work together using intelligent agents. Agents reside onpeer computers and communicate various kinds of information back andforth. Agents may also initiate tasks on behalf of other peer systems.For instance, intelligent agents can be used to prioritize tasks on anetwork, change traffic flow, search for files locally or determineanomalous behavior such as a virus and stop it before it affects thenetwork. All sorts of other services may be contemplated as well. Sincea virtual environment system may in practice be physically located inone or more locations, the ability to distribute information and dataassociated with a virtual environment system is of great utility in sucha system.

It can also be appreciated that an object, such as 520 c, may be hostedon another computing device 50 a, 50 b, etc. or 520 a, 520 b, etc. Thus,although the physical environment depicted may show the connecteddevices as computers, such illustration is merely exemplary and thephysical environment may alternatively be depicted or describedcomprising various digital devices such as gaming consoles, PDAs,televisions, mobile telephones, etc., software objects such asinterfaces, COM objects and the like.

There are a variety of systems, components, and network configurationsthat support distributed virtual environments. For example, computingsystems may be connected together by wired or wireless systems, by localnetworks or widely distributed networks. Currently, many of the networksare coupled to the Internet, which provides the infrastructure forwidely distributed computing and encompasses many different networks.

The Internet commonly refers to the collection of networks and gatewaysthat utilize the Transport Control Protocol/Interface Program (TCP/IP)suite of protocols, which are well-known in the art of computernetworking. The Internet can be described as a system of geographicallydistributed remote computer networks interconnected by computersexecuting networking protocols that allow users to interact and shareinformation over the networks. Because of such wide-spread informationsharing, remote networks such as the Internet have thus far generallyevolved into an open system for which developers can design softwareapplications for performing specialized operations or services,essentially without restriction.

Thus, the network infrastructure enables a host of network topologiessuch as client/server, peer-to-peer, or hybrid architectures. The“client” is a member of a class or group that uses the services ofanother class or group to which it is not related. Thus, in computing, aclient is a process, i.e., roughly a set of instructions or tasks, thatrequests a service provided by another program. The client processutilizes the requested service without having to “know” any workingdetails about the other program or the service itself. In aclient/server architecture, particularly a networked system, a client isusually a computer that accesses shared network resources provided byanother computer, e.g., a server. In the example of FIG. 5, computers520 a, 520 b, etc. can be thought of as clients and computers 50 a, 50b, etc. can be thought of as the server where server 50 a, 50 b, etc.maintains the data that is then replicated in the client computers 520a, 520 b, etc.

A server is typically a remote computer system accessible over a localnetwork such as a LAN or a remote network such as the Internet. Theclient process may be active in a first computer system, and the serverprocess may be active in a second computer system, communicating withone another over a communications medium, thus providing distributedfunctionality and allowing multiple clients to take advantage of theinformation-gathering capabilities of the server.

Client and server communicate with one another utilizing thefunctionality provided by a protocol layer. For example,Hypertext-Transfer Protocol (HTTP) is a common protocol that is used inconjunction with the World Wide Web (WWW). Typically, a computer networkaddress such as a Universal Resource Locator (URL) or an InternetProtocol (IP) address is used to identify the server or client computersto each other. The network address can be referred to as a URL address.For example, communication can be provided over a communications medium.In particular, the client and server may be coupled to one another viaTCP/IP connections for high-capacity communication.

Thus, FIG. 5 illustrates an exemplary networked or distributedenvironment, with a server in communication with client computers via anetwork/bus, in which the present disclosure may be employed. In moredetail, a number of servers 50 a, 50 b, etc., are interconnected via acommunications network/bus 54, which may be a LAN, WAN, intranet, theInternet, etc., with a number of client or remote computing devices 520a, 520 b, 520 c, 520 d, 520 e, etc., such as a portable computer,handheld computer, thin client, networked appliance, mobile telephone,personal computer, gaming console, or other device, in accordance withthe present disclosure. It is thus contemplated that the presentdisclosure may apply to any computing device that may communicate,interact, and/or operate in a virtual environment controlled by avirtual environment system.

In a network environment in which the communications network/bus 54 isthe Internet, for example, the servers 50 a, 50 b, etc. can be Webservers with which the clients 520 a, 520 b, 520 c, 520 d, 520 e, etc.communicate via any of a number of known protocols such as HTTP. Servers50 a, 50 b, etc. may also serve as clients 520 a, 520 b, 520 c, 520 d,520 e, etc., as may be characteristic of a distributed virtualenvironment. Communications may be wired or wireless, where appropriate.Client devices 520 a, 520 b, 520 c, 520 d, 520 e, etc. may or may notcommunicate via communications network/bus 54, and may have independentcommunications associated therewith. Each client computer 520 a, 520 b,520 c, 520 d, 520 e, etc. and server computer 50 a, 50 b, etc. may beequipped with various application program modules or objects 535 andwith connections or access to various types of storage elements orobjects, across which files may be stored or to which portion(s) offiles may be downloaded or migrated. Any computers 50 a, 50 b, 520 a,520 b, 520 c, 520 d, 520 e, etc. may be responsible for the maintenanceand updating of a database 500 or other storage element in accordancewith the present subject matter, such as a database or memory 500 forstoring virtual environment services data, such as information onservice-providing users. Database 500 and one or more of computers 50 a,50 b, 520 a, 520 b, 520 c, 520 d, 520 e, etc. may form an exchangeservice as described herein which may interact or be a component of avirtual environment system according to the present disclosure. Thus,the present disclosure can be utilized in a computer network environmenthaving client computers 520 a, 520 b, 520 c, 520 d, 520 e, etc. that canaccess and interact with a computer network/bus 54 and server computers50 a, 50 b, etc. that may interact with client computers 520 a, 520 b,520 c, 520 d, 520 e, etc. and other like devices, and databases 500.

Exemplary Computing Environment

FIG. 6 and the following discussion are intended to provide a briefgeneral description of a suitable computing environment in which thepresent disclosure or parts thereof may be implemented. It should beunderstood, however, that handheld, portable and other computing devicesand computing objects of all kinds are contemplated for use inconnection with the present disclosure, as described above. Thus, whilea general purpose computer is described below, this is but one example,and the present disclosure may be implemented with other computingdevices, such as a thin client having network/bus interoperability andinteraction. The present disclosure may be implemented in an environmentof networked hosted services in which very little or minimal clientresources are implicated, e.g., a networked environment in which theclient device serves merely as an interface to the network/bus, such asan object placed in an appliance, or other computing devices and objectsas well. In essence, anywhere that an virtual environment system may beemployed is a desirable, or suitable, environment for the virtualenvironment services exchange of the disclosure.

Although not required, the present disclosure can be implemented via anoperating system, for use by a developer of services for a device orobject, and/or included within application software that operates inconnection with the virtual environment system. Software may bedescribed in the general context of computer-executable instructions,such as program modules, being executed by one or more computers, suchas client workstations, servers, gaming consoles, or other devices.Generally, program modules include routines, programs, objects,components, data structures and the like that perform particular tasksor implement particular abstract data types. Typically, thefunctionality of the program modules may be combined or distributed asdesired in various embodiments. Moreover, those skilled in the art willappreciate that the present disclosure may be practiced with othercomputer system configurations. Other well known computing systems,environments, and/or configurations that may be suitable for use withthe present subject matter include, but are not limited to, personalcomputers (PCs), gaming consoles, automated teller machines, servercomputers, hand-held or laptop devices, multi-processor systems,microprocessor-based systems, programmable consumer electronics, networkPCs, appliances, environmental control elements, minicomputers,mainframe computers and the like. The disclosure may also be practicedin distributed computing environments where tasks are performed byremote processing devices that are linked through a communicationsnetwork/bus or other data transmission medium, as described herein inregard to FIG. 5. In a distributed computing environment, programmodules may be located in both local and remote computer storage mediaincluding memory storage devices, and client nodes may in turn behave asserver nodes.

FIG. 6 thus illustrates an example of a suitable computing systemenvironment 600 in which the present subject matter or parts thereof maybe implemented, although as made clear above, computing systemenvironment 600 is only one example of a suitable computing environmentand is not intended to suggest any limitation as to the scope of use orfunctionality of the disclosure. Devices functioning as components orparts of a virtual environment system may be implemented using a systemsuch as computing system environment 600, but those skilled in the artwill recognize that there are other appropriate systems in which toimplement the present disclosure. Computing environment 600 should notbe interpreted as having any dependency or requirement relating to anyone or combination of components illustrated in the exemplary operatingenvironment 600.

With reference to FIG. 6, an exemplary system for implementing thedisclosure includes a general purpose computing device in the form of acomputer 610. Components of computer 610 may include, but are notlimited to, a processing unit 620, a system memory 630, and a system bus621 that couples various system components including the system memoryto the processing unit 620. The system bus 621 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus (also known as Mezzanine bus.)

Computer 610 typically includes a variety of computer readable media.Computer readable media can be any available media that can be accessedby computer 610 and includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes both volatileand nonvolatile, removable and non-removable media implemented in anymethod or technology for storage of information such as computerreadable instructions, data structures, program modules or other data.Computer storage media includes, but is not limited to, Random AccessMemory (RAM), Read Only Memory (ROM), Electrically Erasable ProgrammableRead Only Memory (EEPROM), flash memory or other memory technology,Compact Disk Read Only Memory (CDROM), digital versatile disks (DVD) orother optical disk storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other medium thatcan be used to store the desired information and that can accessed bycomputer 610. Communication media typically embodies computer readableinstructions, data structures, program modules or other data in amodulated data signal such as a carrier wave or other transportmechanism and includes any information delivery media. The term“modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. Combinations of any of the above should also be includedwithin the scope of computer readable media.

System memory 630 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 631and random access memory (RAM) 632. A basic input/output system 633(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 610, such as during start-up, istypically stored in ROM 631. RAM 632 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 620. By way of example, and notlimitation, FIG. 6 illustrates operating system 634, applicationprograms 635, other program modules 636, and program data 637.

Computer 610 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 6 illustrates a hard disk drive 641 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 651that reads from or writes to a removable, nonvolatile magnetic disk 652,and an optical disk drive 655 that reads from or writes to a removable,nonvolatile optical disk 656, such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. Hard disk drive 641 is typically connected tothe system bus 621 through an non-removable memory interface such asinterface 640, and magnetic disk drive 651 and optical disk drive 655are typically connected to system bus 621 by a removable memoryinterface, such as interface 650.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 6 provide storage of computer readableinstructions, data structures, program modules and other data forcomputer 610. In FIG. 6, for example, hard disk drive 641 is illustratedas storing operating system 644, application programs 645, other programmodules 646, and program data 647. Note that these components can eitherbe the same as or different from operating system 634, applicationprograms 635, other program modules 636, and program data 637. Operatingsystem 644, application programs 645, other program modules 646, andprogram data 647 are given different numbers here to illustrate that, ata minimum, they are different copies. A user may enter commands andinformation into computer 610 through input devices such as a keyboard662 and pointing device 661, commonly referred to as a mouse, trackballor touch pad. Alternatively, pointing device 661 may be a controllerused with a gaming console. Other input devices (not shown) may includea microphone, joystick, game pad, satellite dish, scanner, or the like.These and other input devices are often connected to processing unit 620through a user input interface 660 that is coupled to system bus 621,but may be connected by other interface and bus structures, such as aparallel port, game port or a universal serial bus (USB). A graphicsinterface 682 may also be connected to system bus 621. One or moregraphics processing units (GPUs) 684 may communicate with graphicsinterface 682. In this regard, GPUs 684 generally include on-chip memorystorage, such as register storage and GPUs 684 communicate with a videomemory 686. GPUs 684, however, are but one example of a coprocessor andthus a variety of coprocessing devices may be included in computer 610.A monitor 691 or other type of display device may also connect to systembus 621 via an interface, such as a video interface 690, which may inturn communicate with video memory 686. In addition to monitor 691,computers may also include other peripheral output devices such asspeakers 697 and printer 696, which may be connected through an outputperipheral interface 695.

Computer 610 may operate in a networked or distributed environment usinglogical connections to one or more remote computers, such as a remotecomputer 680. Remote computer 680 may be a personal computer, a server,a router, a network PC, a peer device or other common network node, andtypically includes many or all of the elements described above relativeto computer 610, although only a memory storage device 681 has beenillustrated in FIG. 6. The logical connections depicted in FIG. 6include a local area network (LAN) 671 and a wide area network (WAN)673, but may also include other networks/buses, including wirelessnetworks. Such networking environments are commonplace in homes,offices, enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, computer 610 is connected toLAN 671 through a network interface or adapter 670. When used in a WANnetworking environment, computer 610 typically includes a modem 672 orother means for establishing communications over WAN 673, such as theInternet. Modem 672, which may be internal or external, may be connectedto system bus 621 via user input interface 660, or other appropriatemechanism. In a networked environment, program modules depicted relativeto computer 610, or portions thereof, may be stored in the remote memorystorage device. By way of example, and not limitation, FIG. 6illustrates remote application programs 685 as residing on memory device681. It will be appreciated that the network connections shown areexemplary and other means of establishing a communications link betweenthe computers may be used.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

1. A method of detecting the selection of a first service-providing userto advance progress within a virtual environment on behalf of arequesting user, the method comprising: providing data on at least oneservice-providing user, the data comprising information about the firstservice-providing user; detecting a selection of the firstservice-providing user by requesting user; initiating an exchangeservice; and enabling the first service-providing user to participate inthe virtual environment with the requesting user or on behalf of therequesting user.
 2. The method of claim 1, wherein the data on at leastone service-providing user comprises service-providing user ratings foreach of at least one service-providing users.
 3. The method of claim 1,wherein initiating an exchange service comprises: freezing an amount offunds in a requesting user's account; and transferring the amount offunds from the requesting user's account to a first service-providinguser's account after receiving a notification from the requesting userthat the first service-providing user has satisfactorily advancedprogress within the virtual environment on behalf of the requestinguser.
 4. The method of claim 1, wherein enabling the firstservice-providing user to participate in the game on behalf of therequesting user comprises enabling the first service-providing user toparticipate in the virtual environment on behalf of the requesting userfor a predetermined amount of time.
 5. The method of claim 1, furthercomprising receiving a request from the requesting user for the data onat least one service-providing user, the request comprising a specificservice desired by the requesting user.
 6. The method of claim 5,wherein the data on at least one service-providing user comprises timeestimates for completing the specified service for each of at least oneservice-providing users.
 7. A computer-readable storage medium includingcomputer-executable instructions for facilitating the operation within avirtual environment by a service-providing user on behalf of arequesting user, the computer-executable instructions performing thesteps of: creating a copied memory state from an original memory stateassociated with the requesting user, the copied memory state comprisingcontents identical to data contained in the original memory state;permitting the service-providing user to operation within the virtualenvironment on behalf of the requesting user using the copied memorystate; detecting a first notification from the service-providing userthat the service-providing user's operation within the virtualenvironment on behalf of the requesting user has ceased; and sending asecond notification to the requesting user that the service-providinguser's operation within the virtual environment on behalf of therequesting user has ceased.
 8. The computer-readable storage medium ofclaim 7, further comprising computer-executable instructions performingthe step of updating the copied memory state based on theservice-providing user's operation within the virtual environment onbehalf of the requesting user.
 9. The computer-readable storage mediumof claim 7, further comprising computer-executable instructionsperforming the step of receiving from the requesting user a thirdnotification comprising a confirmation that the service-providing userhas satisfactorily completed a task within the virtual environment. 10.The computer-readable storage medium of claim 9, further comprisingcomputer-executable instructions performing the step of, upon receivingthe third notification, writing the contents of the copied memory stateto the original memory state.
 11. The computer-readable storage mediumof claim 9, further comprising computer-executable instructionsperforming the step of transferring an amount of funds from an accountof the requesting user to an account of the service-providing user. 12.The computer-readable storage medium of claim 7, further comprisingcomputer-executable instructions performing the step of receiving fromthe requesting user a third notification comprising a notification thatthe service-providing user has not satisfactorily completed a task. 13.The computer-readable storage medium of claim 12, further comprisingcomputer-executable instructions performing the step of sending a fourthnotification to the service-providing user comprising a notificationthat the requesting user provided the third notification comprising anotification that the service-providing user has not satisfactorilycompleted the task.
 14. A system for evaluating the performance of aservice-providing user who has operated within a virtual environment onbehalf of a requesting user, the system comprising: a virtualenvironment system configured to enable the service-providing user tooperate in the virtual environment on behalf of the requesting user, thevirtual environment system further configured to enable the requestinguser to view results of the operation in the virtual environment by theservice-providing user on behalf of the requesting user; and anevaluation system configured to receive a notification from therequesting user comprising an evaluation regarding the results of theoperation in the virtual environment by the service-providing user onbehalf of the requesting user.
 15. The system of claim 14, wherein thevirtual environment system is further configured to enable therequesting user to observe the service-providing user operating in thevirtual environment on behalf of the requesting user.
 16. The system ofclaim 14, wherein the virtual environment system is further configuredto enable the service-providing user to operate in the virtualenvironment on behalf of the requesting user for a predetermined amountof time.
 17. The system of claim 14, wherein the game system is furtherconfigured to transfer an amount of funds from an account of therequesting user to an account of the service-providing user.
 18. Thesystem of claim 17, wherein the amount of funds is based on a quantityof units of time during which the service-providing user operated in thevirtual environment on behalf of the requesting user.
 19. The system ofclaim 17, wherein the amount of funds is determined by whether theservice-providing user has completed a specific task while operating inthe virtual environment on behalf of the requesting user.
 20. The systemof claim 14, wherein the evaluation system is further configured todetermine a rating for the service-providing user based at least in parton the evaluation received from the requesting user.